//--------------------------------------------
// AudioManager
// 音乐播放管理器
//--------------------------------------------
function AudioManager() {
    throw new Error('This is a static class');
};

AudioManager.playingBGM = ['', 0, 0],


/** 
  * !#zh 播放音效，文件放在resources/audio/se下。 
  * @method PlaySe 
  * @example 
  * playSe('soundeffect', 1); 
*/ 

AudioManager.playSe = function(name, volume) {
    if (volume == undefined) volume = 1;
    this.realVolume = volume * cc.audioEngine.getEffectsVolume();
    cc.resources.load('audio/se/'+name, cc.AudioClip, function (err, clip) {
        var audioID = cc.audioEngine.play(clip, false, this.realVolume);
    }.bind(this));
}


/** 
  * !#zh 播放背景音乐，文件放在resources/audio/bgm下。 
  * @method PlayBgm 
  * @example 
  * playBgm('backgroundmusic', 1); 
*/ 

AudioManager.playBgm = function(name, volume) {
    if (volume == undefined) volume = 1;
    if (name && this.playingBGM[0] == name) {
        // 正在播放当前音乐的情况

    } else {
        // 无音乐播放，或当前播放的不是当前音乐
        cc.audioEngine.stop(this.playingBGM[1]);
        this.realVolume = volume * cc.audioEngine.getMusicVolume();
        cc.resources.load('audio/bgm/'+name, cc.AudioClip, function (err, clip) {
            var audioID = cc.audioEngine.play(clip, true, this.realVolume);
            this.playingBGM[1] = audioID;
        }.bind(this));
        this.playingBGM[0] = name;
        this.playingBGM[2] = volume;
    }

}

//--------------------------------------------
// SceneManager
// 画面管理器
//--------------------------------------------
function SceneManager() {
    throw new Error('This is a static class');
};

SceneManager.scenes = [];

/** 
  * !#zh 读取特定画面。 
  * @method loadScene
  * @example 
  * SceneManager.loadScene('Title');
*/ 

SceneManager.loadScene = function(name) {
    cc.director.loadScene(name);
};

/** 
  * !#zh 读取特定画面，并加入到列表中。 
  * @method loadSceneWithMemory
  * @example 
  * SceneManager.loadSceneWithMemory('Shop');
*/ 

SceneManager.loadSceneWithMemory = function(name) {
    this.scenes.push(name);
    cc.director.loadScene(name);
};

/** 
  * !#zh 回到上一个画面。 
  * @method backScene
  * @example 
  * SceneManager.backScene();
*/ 

SceneManager.backScene = function() {
    if (this.scenes.length >= 1) cc.director.loadScene(this.scenes.pop());
};
